package Window;
/*
 * Az oszcilloszkóp állapotainak kijelzésére szolgáló ablak megvalósítása 
 */
import java.awt.*;

import javax.swing.*;

public class ScopeDisplayWindow extends JFrame {

	private JFrame frame;
	
	//Az adott oszcilloszkóp stabil # értékeit rajzolja ki.
	protected GraphicalValueDisplayer stableValueDisplayer; 
	//A View példányát tartalmazó osztály.
	protected View view;
	//Az adott oszcilloszkóp átmeneti értékeit rajzolja ki.
	protected GraphicalValueDisplayer temporalValueDisplayer; 
	//Az adott oszcilloszkóp sorszámát adja vissza.
	protected int nbOfScope; 

	//Konstruktor,lekéri az ablak méreteit, majd létrehozza az adott panelt.
	public ScopeDisplayWindow(View view, int nbOfScope){
		this.nbOfScope=nbOfScope;
		this.view=view;
		frame = new JFrame("Scope Values");
		frame.setSize(1000,500);
		frame.setLayout(new BorderLayout());
		loadFrame();
		frame.setVisible(true);
	}

	//Ablak feltöltése elemekkel
	private void loadFrame(){
		frame.add(assembleLabelPanel(),BorderLayout.NORTH);
		frame.add(assembleDisplayPanel(),BorderLayout.CENTER);
	}
	//Címkepanel létrehozása és a címkék csatolása
	private JPanel assembleLabelPanel(){
		JLabel stableLabel =new JLabel("Stable Values:");
		JLabel tempLabel =new JLabel("Temporary Values:");
		
		JPanel labelPanel=new JPanel();
		labelPanel.setLayout(new GridLayout(1,2));
		labelPanel.add(stableLabel);
		labelPanel.add(tempLabel);
		
		return labelPanel;
	}
	//A megjelenítők paneljének összerakása
	private JPanel assembleDisplayPanel(){
		int[] stable = view.getStableScopeValues()[nbOfScope];
		int[] temp = view.getTemporalScopeValues()[nbOfScope];
		stableValueDisplayer = new GraphicalValueDisplayer(stable);
		JScrollPane stableScroller = new JScrollPane(stableValueDisplayer); 
		temporalValueDisplayer = new GraphicalValueDisplayer(temp);
		JScrollPane tempScroller = new JScrollPane(temporalValueDisplayer); 		
		JPanel displayPanel=new JPanel();
		displayPanel.setLayout(new GridLayout(1,2));
		displayPanel.add(stableScroller);
		displayPanel.add(tempScroller);
		
		return displayPanel;
	}
	

}
